package edu.zut.method;

public class MethodDemo01 {

    public static void main(String[] args) {
        //静态方法的调用：  同一个类中
        method01();
        exchange(10, 65);
        int sum = add();
        System.out.println("sum=" + sum);
        double avg = avg(65, 89, 78);
        System.out.println("avg=" + avg);
        //非静态方法的调用   静态方法中不能直接调用非静态方法
        MethodDemo01 md = new MethodDemo01();
        md.sum(12, 56);
    }

   /*
   格式：
    [权限修饰符]  [静态修饰符] [final] 返回值类型  方法名（参数1。。。。）｛
            方法体（执行语句）;
            return 返回值；（可选项）
       ｝
    权限修饰符： 规定当前方法的使用权限  如：public
    静态修饰符 ： static   静态的属于类所有  非静态属于对象所有
    final ：最终
    返回值类型： void  或者是数据类型
    方法名：注意命名规则  小驼峰
    形式参数：形参    数据类型  形参名
    return 返回值  ： 当返回值不为void时，必须写
    */

    /*
      定义一个静态的无返回值无参数的方法，在这个方法中实现1-10的输出
    */
    public static void method01() {
        for (int i = 0; i <= 10; i++) {
            System.out.println(i);
        }
    }

    /*定义一个静态的无返回值有参数（两个整型）的方法，
    在这个方法中将这两个整数互相交换*/
    public static void exchange(int a, int b) {
        int temp = a;
        a = b;
        b = temp;
        System.out.println("a=" + a);
        System.out.println("b=" + b);
//        return;
    }

    /*定义一个静态的有返回值无参数的方法，计算1-100的和并将和返回*/
    public static int add() {
        int sum = 0;
        for (int i = 1; i < 101; i++) {
            sum += i;
        }
        return sum;
    }

    /*定义一个静态的有返回值有参数（三个整数）的方法，
    计算这三个整数的平均数并返回*/
    public static double avg(int a, int b, int c) {
//        add();
        return (a + b + c) / 3.0;
    }

    /*非静态方法: 计算两个数字之和*/
    public int sum(int a, int b) {
        return a + b;
    }

    /*定义非静态方法，计算三个整数之和*/
    public int sum2(int a, int b, int c) {
        int x = sum(a,b);
        return x + c;
    }

}
